<?
/* Se asegura que el archivo es incluido por el index */
	defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Mensaje_exe( $this );

	class Mensaje_exe extends Exe
	{
	function Mensaje_exe( &$oModule )
		{
			$this->Exe( $oModule );
		}
	function updateStar()
		{
			$ncMensaje = getParam( 'ncMensaje' );
			$bEstrella = getParam( 'bEstrella' );
			if ( $ncMensaje )
			{
				$this->oDatabase->update( "atMensaje", "bEstrella", $bEstrella, "WHERE", "ncMensaje", $ncMensaje );
			}
		}
	function updateTag()
		{
			$ncMensaje = getParam( 'ncMensaje' );
			$ncRotulo = getParam( 'ncRotulo' );
			$cNewItem = getParam( 'newItem' );
			if ( $cNewItem )
			{
				$ncRotulo = $this->oDatabase->nextKey( "atRotuloMensaje", "ncRotulo", "ncPersona", $this->oModule->oUserSession->getUser() );
				$bOk = $this->oDatabase->insert( "atRotuloMensaje", "ncPersona", $this->oModule->oUserSession->getUser() ,
										"ncRotulo", $ncRotulo, "cdRotulo", $cNewItem );
			}
			if ( $ncMensaje && $ncRotulo )
			{
				$bOk = $this->oDatabase->insert( "atMensajeRotulo",
										"ncPersona", $this->oModule->oUserSession->getUser() ,
										"ncRotulo", $ncRotulo, "ncMensaje", $ncMensaje );
			}
		}
	function checkMessage()
		{
			if ( $this->oModule->oUserSession->getUser() )
			{
				$nqMensajes = $this->oDatabase->getData( "SELECT count(*) FROM atMensaje WHERE bLeido = 0 AND ncReceptor = " . $this->oModule->oUserSession->getUser() );
				if ( $nqMensajes  ) $cReturn = $this->oModule->makeLink('Mensajes', 'accion_head_red', 'Mail' , $this->oModule->cUrlImages .  '/mail_abierto.gif'  );
				else						$cReturn = $this->oModule->makeLink('Mensajes', 'accion_head', 'Mail' , $this->oModule->cUrlImages .  '/mail.gif' );
			}
			echo $cReturn;
			exit();
		}
	function fetchMailbox()
		{
			$oModBase =& loadModule('base');
			$oModBase->loadLibrary('email');
			$cSql = "SELECT ncModoLectura, cMailbox, cUsuario, cClave FROM atPersonalCuenta WHERE ncModolectura IN (1,2) AND ncPersona =  " . $this->oModule->oUserSession->getUser();
			list ( $ncModoLectura, $cMailbox, $cUser, $cPassword )  = $this->oDatabase->getArray($cSql);
			$oEmail = new Email( $cMailbox, $cUser, $cPassword );
			while ( $oEmail->moveNext() )
			{
				$ncMensaje = $this->oDatabase->nextKey("atMensaje", "ncMensaje");
				$this->oDatabase->insert("atMensaje",
									"cdMensaje", $oEmail->aFields['cAsunto'],
									"cDescripcion", $oEmail->aFields['cBody'],
									"ncReceptor", $this->oModule->oUserSession->getUser(),
									"ncEmisor", $this->oModule->oUserSession->getUser(),
									"dEnvio", $oEmail->aFields['dMessage'],
									"bLeido", 0,
									"ncMensaje", $ncMensaje );
				if ( $ncModoLectura == 2 ) $oEmail->markRead();
				//if ( $ncModoLectura == 1 ) $oEmail->markDelete();
			}
			$oEmail->close();
		}
	// MODIFICAR_UNA_MENSAJE
	function update()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Mensaje_frm' );
			extract( $oForm->getFieldArray() );
			// Modifica el Registro de Mensaje
				$this->oDatabase->update("atMensaje",
								"cdMensaje", $cdMensaje,
								"cDescripcion", $cDescripcion,
								"ncPrioridad", $ncPrioridad,
								"WHERE",
								"ncMensaje", $ncMensaje );
		}
	function insertPhoneCall ()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Mensaje_frm' );
			extract( $oForm->getFieldArray() );
			$ncEmisor = $this->oModule->oUserSession->getUser();
			// Agrega la Mensaje
				$ncMensaje = $this->oDatabase->nextKey("atMensaje", "ncMensaje");
				$cContacto = $oForm->aFields['ncContacto']->getDescription();
				if ( $ncContacto )
				{
					$cContacto = $this->oModule->makeAction( $cContacto, VER_PERSONA, "ncPersona=$ncContacto");
				}
				$cdMensaje = "Llamo $cContacto  a las $dLlamada" ;
				$this->oDatabase->insert("atMensaje",
									"cdMensaje", $cdMensaje,
									"cDescripcion", $cDescripcion,
									"ncReceptor", $ncReceptor,
									"ncEmisor", $ncEmisor,
									"ncPrioridad", $ncPrioridad,
									"dEnvio", date("Y-m-d H:i"),
									"bLeido", 0,
									"ncMensaje", $ncMensaje );
		}
	// AGREGAR_UNA_MENSAJE
	function insert()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Mensaje_frm' );
			extract( $oForm->getFieldArray() );
			$ncEmisor = $this->oModule->oUserSession->getUser();
			$aReceptores  =  explode ( ",", $aReceptor);
			foreach ( $aReceptores as $ncReceptor)
			{
				// Agrega la Mensaje
					$ncMensaje = $this->oDatabase->nextKey("atMensaje", "ncMensaje");
					$this->oDatabase->insert("atMensaje",
										"cdMensaje", $cdMensaje,
										"cDescripcion", $cDescripcion,
										"ncReceptor", $ncReceptor,
										"ncEmisor", $ncEmisor,
										"ncPrioridad", $ncPrioridad,
										"dEnvio", date("Y-m-d h:i"),
										"bLeido", 0,
										"ncMensaje", $ncMensaje );
			}
		}
	function convertTask()
		{
			$ncMensaje 		= getParam( 'ncMensaje' );
			if ( $ncMensaje  )
			{
				$cSql = "SELECT ncPrioridad, dEnvio, cdMensaje, ncEmisor, ncReceptor, dEnvio, cDescripcion FROM atMensaje WHERE  ncMensaje =  $ncMensaje " ;
				list ( $ncPrioridad, $dEnvio, $cdMensaje, $ncEmisor, $ncReceptor, $dEnvio, $cDescripcion)  = $this->oDatabase->getArray($cSql);
				$ncTarea = $this->oDatabase->nextKey("atTarea", "ncTarea");
				$this->oDatabase->insert("atTarea"
								,"ncGrupo", obtenerMiGrupo()
								,"cdTarea", $cdMensaje
								,"cDescripcion", $cDescripcion
								,"ncPrioridad", $ncPrioridad
								,"ncUsuario", $ncEmisor
								,"ncPersona", $ncReceptor
								,"dDesde", $dEnvio
								,"ncTarea", $ncTarea);
			}
		}
	// ELIMINAR_UNA_MENSAJE
	function delete()
		{
			$oModBase =& loadModule('base');
			$oModBase->loadLibrary('email');
			$ncCuenta 		= getParam( 'ncCuenta' );
			$oncMensaje		= new InputNumber ( '', "ncMensaje" );
			$aMensajes		= $oncMensaje->getValue();
			if ( !$ncCuenta )  return false;
			$cSql = "SELECT ncModolectura, cMailbox, cUsuario, cClave FROM atPersonalCuenta WHERE  ncCuenta = $ncCuenta  AND ncPersona =  " . $this->oModule->oUserSession->getUser();
			list ( $ncModolectura, $cMailbox, $cUser, $cPassword )  = $this->oDatabase->getArray($cSql);
			if ( $ncModolectura == 3 )
			{
				$oEmail = new Email( $cMailbox, $cUser, $cPassword );
				if ( !is_array($aMensajes) )
				{
						$oEmail->moveTo( $aMensajes );
						$oEmail->markDelete();
				} else {
					foreach ( $aMensajes as $ncMensaje )
					{
						$oEmail->moveTo( $ncMensaje );
						$oEmail->markDelete();
					}
				}
				$oEmail->close();
			} else
			{
				if ( !is_array($aMensajes) )
				{
					$this->oDatabase->delete( "atMensaje", "ncMensaje", $aMensajes );
				} else
				{
					foreach ( $aMensajes as $ncMensaje )
					{
						$this->oDatabase->delete( "atMensaje", "ncMensaje", $ncMensaje );
					}
				}
			}
		}
	}
?>
